﻿/**
 * 标准的象棋马的走法是向一个方向走2格、另一个垂直方向走1格。
 * 现在改造一下，一个方向走A格、垂直方向走B格。
 * 再给定两个位置，问能够同时攻击到这两个位置的马有多少个
 * 无限大的棋盘
 * 枚举一下即可。每个位置最多被8个马攻击到，求个交集
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>
using namespace __gnu_pbds;

using llt = long long;
using pii = pair<int, int>;
using vi = vector<int>;

int const DR[] = {1, 1, -1, -1};
int const DC[] = {1, -1, 1, -1};

int N;
llt A, B, XK, YK, XQ, YQ;

set<pair<int, int>> get(llt x, llt y){
    set<pair<int, int>> ans;
    for(int i=0;i<4;++i){
        ans.insert({x + DR[i] * A, y + DC[i] * B});
        ans.insert({x + DR[i] * B, y + DC[i] * A});
    }
    return ans;
}

int proc(){
    auto t1 = get(XK, YK);
    auto t2 = get(XQ, YQ);
    int ans = 0;
    for(auto p : t2){
        if(t1.find(p) != t1.end()) ++ans;
    }
    return ans;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    int nofkase = 1;
    cin >> nofkase;
    while(nofkase--){
        cin >> A >> B >> XK >> YK >> XQ >> YQ;
        cout << proc() << endl;
    }
    return 0;
}